Software code profiling is a form of dynamic program analysis for aiding software program optimization. Profiling measures memory or time complexity of a program, the usage of particular instructions or frequency and duration of function calls. Profiling is achieved by instrumenting either the program source code or its binary executable form using a tool commonly called a code profiler. A number of different techniques may be used by profilers, such as event-based, statistical, instrumented and simulation methods. The output data from a code profiler can be displayed to the user as a set of bar-graphs with % central processing unit (CPU) cycles as a measurement unit. Conventional recording of profiling data relies on instruction trace output or instrumentation of code with logging to off-chip data recorders or post-processors.